package idleisv

import (
	"sync"
)

// IdleItemApiSkuDo 结构体
type IdleItemApiSkuDo struct {
	// 销售属性列表(最多2个销售属性,每一个的属性值个数为2～10)
	PropertyList []IdleItemApiPvPairDo `json:"property_list,omitempty" xml:"property_list>idle_item_api_pv_pair_do,omitempty"`
	// 外部商家标识(商品编码对接ERP等)(长度&lt;=30)
	OuterId string `json:"outer_id,omitempty" xml:"outer_id,omitempty"`
	// skuId
	SkuId int64 `json:"sku_id,omitempty" xml:"sku_id,omitempty"`
	// 价格，单位分
	Price int64 `json:"price,omitempty" xml:"price,omitempty"`
	// 库存
	Quantity int64 `json:"quantity,omitempty" xml:"quantity,omitempty"`
}

var poolIdleItemApiSkuDo = sync.Pool{
	New: func() any {
		return new(IdleItemApiSkuDo)
	},
}

// GetIdleItemApiSkuDo() 从对象池中获取IdleItemApiSkuDo
func GetIdleItemApiSkuDo() *IdleItemApiSkuDo {
	return poolIdleItemApiSkuDo.Get().(*IdleItemApiSkuDo)
}

// ReleaseIdleItemApiSkuDo 释放IdleItemApiSkuDo
func ReleaseIdleItemApiSkuDo(v *IdleItemApiSkuDo) {
	v.PropertyList = v.PropertyList[:0]
	v.OuterId = ""
	v.SkuId = 0
	v.Price = 0
	v.Quantity = 0
	poolIdleItemApiSkuDo.Put(v)
}
